Фрагмент для ознакомления
2
1 ОСНОВНЫЕ ПОНЯТИЯ БАЗ ДАННЫХ
1.1 Базы данных и система управления базами данных
База данных - это организованная структура, предназначенная для хранения информации. Современные базы данных хранят не только данные, но и информацию.
Это утверждение легко понять, если мы рассмотрим, например, базу данных крупного банка. Он содержит всю необходимую информацию о клиентах, их адресах, кредитной истории, состоянии текущего счета, финансовых транзакциях и т. Д. Он содержит всю необходимую информацию о клиентах, их адресах, кредитной истории, состоянии текущего счета, финансовых операциях и т. Д. Достаточно большое количество сотрудников банка имеют доступ к этой базе данных, но среди них вряд ли найдется человек, который имеет доступ ко всей базе данных в полном объеме и при этом способен самостоятельно вносить в нее произвольные изменения. В дополнение к данным в нашей базе данных, методы и инструменты, с помощью которых каждый сотрудник оперирует только теми данными, которые входят в его компетенция. Взаимодействие данных, содержащихся в базе данных, с методами, доступными для конкретных сотрудников, генерирует информацию, которую они потребляют, и на основе которой они хранят и обрабатывают данные в рамках своих обязанностей.
Концепция системы управления базами данных тесно связана с концепцией базы данных. Это набор программных инструментов, которые вы можете использовать для создания структура новой базы данных, наполнение ее содержимым, редактирование содержимого и визуализация информации. Под визуализацией информации базы данных понимается выбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующий вывод на устройство вывода или передача по каналам связи.
В мире существует множество систем управления базами данных. Несмотря на то, что они могут работать с разными объектами по-разному и предоставлять пользователю различные функции и инструменты, большинство СУБД полагаются на глубоко лежащий унифицированный набор фундаментальных концепций. Это дает нам возможность рассмотреть обобщение системы и концепций, методов и методологий для всего класса СУБД. В качестве одного из таких обучающих объектов мы выбираем ядро базы данных Microsoft , используемое в Microsoft Access, которое входит в состав пакета Microsoft Office.
1.2 Структура СУБД
Составной индекс (DL) - средство описания данных в базе данных и отношений между ними. Этот язык используется для описания структуры базы данных-форматов записей и паролей, используемых для защиты данных. данные.
Язык обработки данных (YAMD) - язык для выполнения операций с данными, позволяющий изменять их структуру.
Для разных СУБД реализация этих языковых уровней может быть разной. В некоторых случаях НИОКР и ЯМД требуют от пользователя полностью скомпилировать программу "вручную", в других (что отражает текущую тенденцию) ядро базы данных имеет инструменты для визуального (видимого, визуального) проектирования программ. Для этого в современных системах СУБД есть редакторы экранных форм и отчетов. "Строительными блоками" (инструментами) таких редакторов являются поля различных типов (поля ввода, поля вывода, вычисляемые поля), процедуры обработки различных типов (формы ввода, таблицы, отчеты, запросы). На основе самодельных программ-генераторов генерируется программный код на языке соответствующей машины или промежуточном языке.
1.3 Система управления базами данных
Базы данных системного управления(СУБД) - это система, обеспечивающая поиск, хранение, адаптацию данных и формирование ответов на запросы. Система обеспечивает безопасность данных, конфиденциальность, перемещение и подключение к другим программно.
Система управления базами данных - данные это программный инструмент, который вы можете использовать для создания, заполнения и работы с базами данных.
Основные функции СУБД:
непосредственное управление данными во внешнем хранилище;
Управление буферами оперативной памяти.
Управление транзакциями.
ведение журнала;
Поддержка языков, баз данных.
СУБД обычно работает с несколькими типами объектов:
Таблицы являются важными объектами базы данных. Реляционная база данных может состоять из множества взаимосвязанных таблиц.
Запросы-это специальные структуры, предназначенные для обработки данных базы данных. Запросы используются для организации, фильтрации, выбора, изменения, слияния и редактирования данных. Существует множество различных типов запросов, и наиболее простыми и распространенными из них являются примеры запросов. Целью запроса выбора является создание результирующей таблицы, в которой данные будут только необходимым условием для запроса базовых таблиц.
Формы- это объекты, которые вы можете использовать для вводить новые данные в базу данных или отображать существующие данные.
Отчеты-это объекты, которые используются для простой и наглядной отправки данных на принтер.
Макросы- это сценарии. Если какие-либо операции с базой данных становятся особенно частыми, имеет смысл сгруппировать несколько команд в один макрос и назначить его выбранным сочетаниям клавиш.
Модули- это программная процедура, написанная на языке программирования.
1.4 Типы моделей данных БАЗА ДАННЫХ
Иерархическая модель базы данных представлена в виде дерева. Элементы из дерева представляют собой набор завершающих данных, таких как логические записи.
Сетевые модели управления БД в большей степени соответствуют широкому классу объектов, хотя они также требуют дополнительных затрат на их организацию.
Модель реляционной базы данных представляет объекты и отношения между ними в виде таблиц, и все операции с данными сводятся к транзакциям над этими таблицами. Практически все современные системы СУБД основаны на этой модели. Эта модель более чем понятна и "прозрачна" для конечного пользователя. организация данных.
В последние годы объектно-ориентированные базы данных (OOB) получают все большее признание и развитие благодаря объектно-ориентированному программированию, особенно важное значение и использование персональных компьютеров для обработки и представления практически всех форм информации, которую воспринимаемые люди. В модели данных СУБД больше тесно связано с объектами реального мира. Вы можете хранить и использовать объекты непосредственно, а не размещать их в таблице.
1.5 Структура базы данных
Дайте понять, что если в базе данных нет данных (пустая база данных), то это все равно полный база данных. Этот факт имеет методологическое значение. Несмотря на то, что в базе данных нет данных, она по-прежнему есть информация - это структура базы данных. Он определяет методы, которые позволяют вводить данные и хранить их в базе данных. Простейшая "некомпьютерная" версия базы данных представляет собой бизнес-дневник, в котором каждому календарному дню отведена страница. Даже если в нем нет ни единой строчки, он не прекращает вести свой дневник, потому что тот имеет структуру, которая точно отличает его от тетрадей, рабочих тетрадей и других канцелярских принадлежностей.
База данных может содержать различные объекты. Наиболее важными объектами любой базы данных являются таблицы. Самая простая база данных содержит как минимум одну таблицу. Соответственно, простейшая структура базы данных идентична структуре таблицы.
Структура двумерной таблицы состоит из столбцов и строк. Их аналогами в простейшей базе данных являются поля и записи. Если в таблице еще нет записей, это означает, что ваша структура может быть представлена только в виде набора полей. Изменяя состав полей базовой таблицы (или их свойства соответственно), мы меняем структуру базы данных и, соответственно, получаем новую базу данных.
Большинство баз данных имеют табличную структуру. Структура таблицы адресов данных определяет пересечение строк и столбцов. В базах данных столбцы обозначаются как поля, а строки обозначаются как записи. Поля формируют структуру базы данных, а записи формируют информацию, которую она содержит.
Поля являются наиболее важными элементами структуры базы данных. У них есть характеристики. Свойства поля определяют, какие типы данных вводятся в поле, а также то, что может быть введено с данными, содержащимися в поле. Поля имеют разные свойства и принадлежат разным типам.
1) наиболее важным свойством любого поля является его длина. Длина поля выражается в символах (или символах). Длина поля указывает, сколько символов жестяная банка поместиться в нем.
2) уникальным свойством каждого поля является имя. Таблица содержит два поля с одинаковыми именами. В дополнение к имени, поле также имеет свойство подпись. Заголовки представляют собой информацию, которая отображается в заголовке столбца. Если подпись опущена, имя поля отображается в заголовке столбца.
Разные типы полей разные цели и свойства:
1) одним из основных свойств текстового поля является размер.
2) числовое поле предназначено для ввода числовых данных. У него тоже есть размер, но числовые поля разные, например, для ввода для ввода целых и действительных чисел. В последнем случае, помимо размера полей, размер также определяет десятичную дробь числа.
3) Поля для ввода даты или времени относятся к типу дата / время.
4) Для ввода этих логических данных, которые имеют только два значения: Да или нет; 0 или 1; Истина или ложь), используйте специальное поле типа булево. Длина этого поля всегда равна 1 байту.
5) особый вид полей -деньги. Денежные суммы можно хранить в числовом поле, но с ними удобнее работать, чем с валютой. В этом случае компьютер отображает цифры вместе с денежными единицами (евроценты, долларовые центы, фунты- пенсы).
6) Современная база данных может хранить не только буквенно-цифровые символы, но и изображения, музыкальные клипы и видео. Поле для таких объектов называется полем OLE.
7) текстовое поле имеет недостаток, связанный с тем, что оно имеет ограниченный размер (не более 256 символов). Если вы хотите добавить в поле длинный текст, вы можете создать поле для заметок. Он хранит до 65535 символов. Особенность поля для заметок заключается в том, что на самом деле эти данные хранятся и хранятся в другом месте, чем в поле, а в поле просто наведите указатель мыши на то место, где находится текст.
8)поле значения автомобиля. На первый взгляд, это обычное числовое поле, но оно обладает свойством автоматического увеличения. Если в базе данных есть поле, которое вводится при вводе новой записи, номер, который автоматически становится на единицу выше, чем значения в том же поле в предыдущей записи.
1.6 Свойства полей базы данных
Поля базы данных не просто определяют структуру базы данных - они определяют групповые свойства данных в ячейках, принадлежащих каждому полю. Наиболее важные свойства полей в таблицах базы данных приведены ниже на примере Microsoft СУБД Microsoft Access.
Имя поля определяет, как данные должны быть доступны в этой области при выполнении автоматических операций с базой данных (по умолчанию имена полей используются в качестве заголовков столбцов таблица).
Тип поля определяет тип данных, которые могут содержаться в этом поле.
Размер поля - определяет максимальную длину (в символах) данных, которые могут быть помещены в это поле.
Формат поля - определяет, как данные форматируются в поле, принадлежащем ячейкам.
Маска ввода - определяет форму, в которой данные вводятся в поле (средства автоматизации ввода данных).
Подпись - задает заголовок, который будет отображаться в столбце таблицы для этого поля (если подпись не указана, то в качестве заголовка столбца будет указано свойство Field Name).
Значение по умолчанию - это значение, которое вводится в ячейки, поля становятся автоматическими (средства автоматизации ввода данных).
Ограничение условного значения используется для обеспечения правильного ввода данных (инструмент для автоматизации ввода, который обычно используется для ввода данных с числовым типом, денежным типом или датой).
Сообщение об ошибке - SMS-сообщение, которое выводится автоматически при попытке ввести неверные данные в поле ввод.
Обязательное поле - свойство, указывающее, будет ли поле заполняться при заполнении базы данных.
Пустое строковое свойство, которое вводит пустые строковые данные (Обязательное поле свойства отличается от того, что оно применяется не ко всем типам данных, а только к некоторым, таким как текст).
Индексированное поле - если поле обладает этим свойством, то все операции, связанные с поиском или сортировкой записей по значению, которые уже находятся в этом поле, будут значительно ускорены. Кроме того, для индексированных полей вы можете убедиться, что значение в записях проверяется на наличие повторений в этой области, что позволяет автоматически устранять избыточность данных.
Поскольку разные поля содержат разные типы данных, свойства полей могут отличаться в зависимости от типа данных. Пример: приведенный выше список свойств полей в основном применим к полям текстового типа. Поля других типов обладают или не обладают этими свойствами, но вы также можете добавить свои собственные. Например, для данных, содержащих действительные числа, количество знаков после запятой является важным свойством. С другой стороны, для полей, используемых для хранения изображений, звукозаписей, видео и другие OLE-объекты, большинство из вышеперечисленных свойств не имеют смысла.
1.7 Типы данных
Таблицы базы данных, как правило, позволяют использовать множество различных типов данных с большим объемом работы. Например, база данных в Microsoft Access будет работать со следующими типами данных:
Текстовый тип данных используется для отображения обычного текста ограниченного размера (до 255 символов).
число - тип данных для хранения действительных чисел.
Поле для заметок - это специальный тип данных, предназначенный для хранения больших объемов текста (до 65535 символов). Текст физически не хранится в этом поле. Он хранится в другом месте в базе данных и указатель на него в поле, но это разделение не всегда видно пользователю.
Дата/время - тип данных для хранения календаря, даты и текущего времени.
Деньги - тип данных для хранения валютных сумм. Теоретически вы также можете добавлять числовые поля к своим записям, но для денежных сумм есть некоторые свойства (например, правила округления), которые программисты используют для особый тип данных, а не настройка числового типа.
Счетчик - особый тип данных для автоматического приращения уникальных (не в поле) натуральных чисел. Естественное использование - для порядковых номеров записей.
Логический - тип для хранения логических данных - (он может принимать только два значения, например да или нет).
Гиперссылка - специальное поле для хранения URL -адресов веб-объектов Интернета. Когда вы нажимаете на такую ссылку, браузер автоматически запускается, и объект отображается в его окне.
Мастер замены не имеет специального типа данных. Объект, который вы можете настроить для автоматизации ввода данных в поле, чтобы вам не нужно было вводить его вручную, просто выберите его из выпадающего списка.
1.8 Безопасность базы данных
База данных - это тоже файлы, но работа с ними мало чем отличается от работы с файлами других типов, которые используются другими приложениями. Как мы видели выше, операционная система берет на себя все заботы по поддержанию файловой структуры. База данных предъявляет особые требования к безопасности, поэтому они реализуют другой подход к хранению и распространению данных.
База данных - это особая структура. Информация, которую они содержат, очень часто представляет общественную ценность. Часто тысячи людей работают с одной и той же базой данных по всей стране. Благополучие многих людей может зависеть от информации, содержащейся в некоторых базах данных. Так что целостность содержимого базы данных не может и не должна зависеть от определенных действий конкретного пользователя, который забывает сделать резервную копию файлов перед выключением компьютера, ни от каких перебоев в подаче электроэнергии.
Проблема безопасности базы данных усугубляется тем фактом, что СУБД использует двойной подход к сохранению информации. Как обычно, некоторые операции связаны с операционной системой компьютера, но некоторые операции с памятью операционная система обходной путь.
2 МЕТОДОЛОГИЯ ПРОЕКТИРОВАНИЯ
Понятие "предметная область" является базисным понятием в теории баз данных и поэтому не имеет строгого определения. Чтобы выяснить его смысл, дадим несколько определений.
Под информацией понимают любые сведения о каком-либо событии, процессе и т.п., являющиеся объектом некоторых операций: восприятия, передачи, преобразования, хранения или использования.
Перед тем как определить понятие данного, представим следующую абстрактную ситуацию. Имеются: некоторая система, информация о которой представляет интерес; наблюдатель, способный воспринимать состояния системы и в определенной форме фиксировать их в своей памяти (никаких других действий наблюдатель не выполняет). В этом случае говорят, что в памяти наблюдателя находятся "данные", описывающие состояние системы. Таким наблюдателем, в общем случае, могут выступать информационные системы.
В самом широком смысле информационная система представляет собой программное обеспечение, функции которого состоят в поддержке надежного хранения информации в памяти ЭВМ, выполнении необходимых преобразований информации и предоставлении пользователям удобного и легко осваиваемого доступа к функциям, реализуемым информационной системой. Таким образом, 'данные" можно определить как информацию, фиксированную в определенной форме, пригодной для последующей передачи и хранения. Другими словами, данные - это последовательность элементарных символов, цифр или букв, являющихся значением некоторого атрибута. Метаданными будем называть данные о данных.
Объект - это все то, что существует вне нас и независимо от нашего сознания, влияния внешнего мира и материальной действительности. Объекты потенциально обладают огромным количеством свойств и находятся в потенциально бесконечном числе взаимосвязей между собой. Однако среди всего множества свойств и взаимосвязей между объектами имеет смысл выделять лишь существенные, важные с точки зрения потребителя информации.
Предмет - это объект, ставший носителем определенной совокупности свойств и входящий в различные взаимоотношения, которые представляют интерес для потребителей информации. Один и тот же объект может восприниматься разными системами как разные предметы. Таким образом, предмет - это модель реального объекта.
Совокупность объектов, информация о которых представляет интерес для пользователей, образует объектное ядро предметной области.
Понятие "предметная область" соответствует точке зрения потребителей информации на объектное ядро, при которой выделяются только те свойства объектов и взаимосвязи между ними, которые представляют определенную ценность и должны фиксироваться в базе данных. Таким образом, предметная область представляет собой абстрактную картину реальной действительности, определенная часть которой фиксируется в качестве модели фрагмента действительности.
В каждый момент времени предметная область находится в одном из состояний, которое характеризуется совокупностью объектов и их взаимосвязей. Если объекты образуют объектное ядро, то совокупность взаимосвязей отражает структуру фрагмента действительности. С течением времени одни объекты исчезают, другие появляются, меняются свойства и взаимосвязи. Тем не менее возникающие новые состояния считаются состояниями одной и той же предметной области.
Таким образом, предметную область целесообразно рассматривать как систему, переживающую свою историю, которая состоит из определенной последовательности состояний.
Поскольку объектное ядро произвольной предметной области потенциально содержит бесконечное число объектов, которые находятся в потенциально бесконечном множестве взаимосвязей, то становится ясным, что прямой подход к описанию предметной области через описание всех объектов и взаимосвязей между ними обречен на провал.
Очевидной альтернативой в этой ситуации является поход к описанию предметной области, фиксирующий только то общее, что является неизменным и характеризует ситуацию в любой момент времени, или, говоря иными словами, отражающий семантику предметной области. Отсюда следует, что необходимы специальные средства описания предметной области, которые были бы применимы к любым областям, и которые достаточно просто интерпретировать в конкретном фрагменте внешнего мира и одновременно являлись бы точными, структурированными и обозримыми (конечными).
Приспособленность указанных средств для описания любой предметной области означает, что они обязаны быть достаточно универсальными. Для обеспечения универсальности необходима высокая общность, абстрактность системы базисных метапонятий и правил порождения новых понятий, которые допускают интерпретацию в любой предметной области. В силу своей абстрактности средства описания предметной области называются концептуальными. Поэтому в теории баз данных принято говорить о концептуальном или информационно-логическом (инфологическом) моделировании предметной области. Результатом процесса моделирования является концептуальная схема (модель) предметной области.
Введем следующее определение: тип - это понятие, объединяющее все объекты данного типа. В отличие от объекта, существующего в данный момент в конкретном месте, тип не имеет пространственно-временной локализации. Он охватывает все существовавшие, существующие и мыслимые объекты, относимые к данному типу. Типы обеспечивают непротиворечивое объединение локальных точек зрения различных групп пользователей.
Понятие типа не следует путать с понятием множества. Под множеством понимается любое объединение в одно целое определенных вполне различаемых объектов из нашего восприятия или мысли, которые называются элементами множества. Таким образом, между элементом множества и самим множеством существует отношение часть - целое. Тип же является абстракцией реальных объектов, Т.е. тип и объект данного типа находится в отношений абстрактное - конкретное.
Связь – это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). В любой связи выделяются два конца (в соответствии с парой связываемых сущностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т. е. любой ли экземпляр данной сущности должен участвовать в данной связи).
Связи "многие-со-многими". Иногда бывает необходимо связывать сущности таким образом, что с обоих концов связи могут присутствовать несколько экземпляров сущности (например, все члены кооператива сообща владеют имуществом кооператива). Для этого вводится разновидность связи "многие-со-многими".
Уточняемые степени связи. Иногда бывает полезно определить возможное количество экземпляров сущности, участвующих в данной связи (например, служащему разрешается участвовать не более чем в трех проектах одновременно). Для выражения этого семантического ограничения разрешается указывать на конце связи ее максимальную или обязательную степень.
Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно, в случае связи "один-ко-многим"), что при удалении опорного экземпляра сущности (соответствующего концу связи "один") нужно удалить и все экземпляры сущности, соответствующие концу связи "многие". Соответствующее требование "каскадного удаления" можно сформулировать при определении сущности. Домены. Как и в случае реляционной модели данных, бывает, полезна возможность определения потенциально допустимого множества значений атрибута сущности (домена).
Эти и другие более сложные элементы модели данных сущность – связь делают ее более мощной, но одновременно несколько усложняют ее использование. Конечно, при реальном использовании ЕR-диаграмм для проектирования баз данных необходимо ознакомиться со всеми возможностями.
Наиболее часто на практике ЕR-моделирование используется на первой стадии проектирования базы данных. Его результатом, как правило, является концептуальная модель предметной области, выраженная в терминах ЕR-модели.
При переходе к следующему этапу - моделированию схемы БД – перед разработчиком возникает проблема выражения концептуальной модели предметной области в терминах применяемой модели данных (например, реляционной). Существует три подхода к решению этой проблемы.
Первый подход состоит в ручном преобразовании концептуальной модели предметной области в схему БД, выполняемом согласно методикам, в которых достаточно четко оговорены все этапы такого преобразования.
Во втором подходе реализуется автоматизированная компиляция концептуальной модели предметной области в схему БД (чаще всего реляционную). Известны два типа подхода:
подход, основанный на явном представлении концептуальной модели предметной области как исходной информации для компиляции;
подход, ориентированный на построение интегрированных систем проектирования с автоматизированным созданием концептуальной модели предметной области на основе интервью с экспертами предметной области.
Наконец, третий подход - это непосредственная работа с базой данных в семантической модели, Т.е. применение СУБД, основанных на семантических моделях данных. При этом снова рассматриваются два варианта.
Первый вариант - обеспечение пользовательского интерфейса на основе семантической модели данных с автоматическим отображением конструкций в реляционную модель данных (это задача примерно такого же уровня сложности, как автоматическая компиляция концептуальной модели предметной области в схему БД).
Второй вариант - прямая реализация СУБД, основанная на какой либо семантической модели данных.